<?php

abstract class Catalogue_Model_Object_Abstract extends Workset_Model_Object_Abstract {

    /**
     * Объект в состоянии ошибки
     */
    const ERROR_STATUS = -1;
    
	/**
	 * Код активного объекта
	 */
    const ENABLED_STATUS = 1;

	/**
	 * Код скрытого объекта
	 */
    const DISABLED_STATUS = 0;

	/**
	 * символьный префикс для ID на html-странице
	 */
	const HTML_PREFIX = 'i';

	/**
	 * тип "Объект каталога"
	 */
	const T_OBJECT = 'object';

	/**
	 * тип "Категория каталога"
	 */
	const T_CATEGORY = 'category';

	/**
	 * тип "Атрибут каталога"
	 */
	const T_ATTRIBUTE = 'attribute';

	/**
	 * тип "Атрибут списка значений"
	 */
	const T_ATTRIBUTE_ENUM = 'attribute_enum';

	/**
	 * тип "Элемент списка значений"
	 */
	const T_ATTRIBUTE_ENUM_ITEM = 'attribute_enum_item';

	protected $_htmlId = null;

	/**
	 * Возвращает ID для идентификации объекта на html-странице
	 *
	 * @param  $prefix
	 * @param  $postfix
	 * @return string
	 */
	function getHtmlId($prefix = null, $postfix = null) {
		if (null !== $this->_htmlId) {
			$id = $this->_htmlId;
		} else {
			$id = self::HTML_PREFIX.$this->getId();
		}

		if (null !== $prefix) {
			$id = $prefix."[$id]";
		}

		if (null !== $postfix) {
			$id = $id."[$postfix]";
		}

        return $id;
    }

	/**
	 * Устанавливает ID для идентификации объекта на html-странице
	 * 
	 * @param  $id
	 * @return void
	 */
    function setHtmlId($id) {
        $this->_htmlId = (string)$id;
    }

    /**
     * @deprecated
     * @static
     * @param  $limit
     * @param  $offset
     * @return int
     */
	protected static function _getSqlOffset($limit, $offset) {
		$limit = (int)$limit;
		$offset = (int)$offset;

		if ($limit > 0 && $offset > 0) {
            return ($limit * ($offset - 1));
        }

		return null;
	}

}

?>